How Pair Programming Really Works Programming

نویسنده

  • Stephan Salinger
چکیده

50 I E E E S O F T W A R E Pu b l i s h e d b y t h e I E E E C om p u t e r S o c i e t y 0 74 0 74 5 9 / 1 0 / $ 2 6 . 0 0 © 2 0 1 0 I E E E As a dictionary definition, I’d say that pair programming is a technique in which two people sit down, literally side by side, and write a program at the same computer. When Kent Beck originally coined the term, he described two programmers working at different levels of abstraction.1 Laurie Williams and Robert Kessler made this idea more concrete, using the metaphor of one programmer being the “driver” and the other the “navigator.”2 In this metaphor, the driver controls the keyboard and focuses on the immediate task of coding, and the navigator acts as a reviewer, observing and thinking about more strategic architectural issues. My own experience as a developer using pair programming is that it isn’t just a technique where one person programs and the other person watches. Both programmers work closely together, chatting the whole time, jotting down reminders of things to do, and pointing out pieces of code on the screen. (One of the clichés of pair programming is that if you’re doing it right, your screen should be covered with greasy finger-marks by the end of the day.) Programmers take turns at the keyboard, usually swapping over with a phrase like, “No, let me show you what I mean.” Jan Chong and Tom Hurlbutt confirmed this view of successful pair programming after spending several months on an ethnographic study of professional developers who use pair programming in their daily work.3 They found that programmers tended to work together on the same facet of a problem almost the whole time and swap between tactical and architectural levels as a pair. Similar ethnographic studies by Sallyann Bryant and her colleagues4 and Stephan Salinger and his colleagues further confirmed this.5 Of course, not all attempts at pair programming have been successful—Matt Stephens and Doug Rosenberg, for example, reported unfavorably on their experiences.6 However, what they described is a caricature of the drivernavigator metaphor, with one programmer firmly in control and the other sitting quietly, doing little. Such misunderstanding shows that we can’t take a claim that developers are pair programming at face value; they might not be doing what experienced and effective pair programmers actually do. P air programming has generated considerable controversy: some developers are enthusiastic about it, almost evangelical; others are dubious, even hostile. However, a large factor in this controversy is that programmers label a wide variety of practices under the “pair programming” umbrella. Thus, before our community can sensibly discuss how pair programming works, we first need to establish exactly what it is. Pair programming isn’t always successful, and recent studies cast doubt on the “drivernavigator” metaphor. Four mechanisms can improve pair programming performance. Stuart Wray, Royal School of Signals How Pair Programming Really Works pr o gr amming

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Fuzzy Linear Programming Method for Deriving Priorities in the Fuzzy Analytic Hierarchy Process

There are various methods for obtaining the preference vector of pair-wise comparison matrix factors. These methods can be employed when the elements of pair-wise comparison matrix are crisp while they are inefficient for fuzzy elements of pair-wise comparison matrix. In this paper, a method is proposed by which the preference vector of pair-wise comparison matrix elements can be obtained even ...

متن کامل

Fuzzy linear regression model with crisp coefficients: A goal programming approach

The fuzzy linear regression model with fuzzy input-output data andcrisp coefficients is studied in this paper. A linear programmingmodel based on goal programming is proposed to calculate theregression coefficients. In contrast with most of the previous works, theproposed model takes into account the centers of fuzzy data as animportant feature as well as their spreads in the procedure ofconstr...

متن کامل

Centralized Supply Chain Network Ddesign: Monopoly, Duopoly, and Ooligopoly Competitions under Uncertainty

This paper presents a competitive supply chain network design problem in which one, two, or three supply chains are planning to enter the price-dependent markets simultaneously in uncertain environments and decide to set the prices and shape their networks. The chains produce competitive products either identical or highly substitutable. Fuzzy multi-level mixed integer programming is used to mo...

متن کامل

An interval-valued programming approach to matrix games with payoffs of triangular intuitionistic fuzzy numbers

The purpose of this paper is to develop a methodology for solving a new type of matrix games in which payoffs are expressed with triangular intuitionistic fuzzy numbers (TIFNs). In this methodology, the concept of solutions for matrix games with payoffs of TIFNs is introduced. A pair of auxiliary intuitionistic fuzzy programming models for players are established to determine optimal strategies...

متن کامل

Pair Programming on the C3 Project

C hrysler's Comprehensive Compensation (C3) project was one of the first large-scale IT projects on which Extreme Programming precepts were attempted. (For an overview of XP and the C3 project , see Kent Beck's " Embracing Change with Extreme Programming, " Computer, Oct. 1999, pp. 70-77, and Chet Hen-drickson's sidebar, " DaimlerChrysler: The Best Team in the World, " p. 75.) As XP was being i...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009